﻿function CheckAll(mode,tb){
    //1、选中checkbox
    //2、如果已经进入编辑模式，让选中行进入编辑状态
    //tb = #tb1
    //$(tb) = $('#tb1'),children()表示取匹配的元素中的子元素
    $(tb).children().each(function(){
        //$(this)表示循环过程中，每一个tr,每一行数据
        //prop()获取在匹配的元素集中的第一个元素的属性值.pop('checked')表示查找选中的行
        var tr = $(this);
        var isChecked = $(this).find(':checkbox').prop('checked'); //这行意思是获取选中的行
        if(isChecked==true){
            
        }else{
            $(this).find(':checkbox').prop('checked',true);
            //如果已经进入编辑模式，让选中行进入编辑状态
            var isEditMode = $(mode).hasClass('editing');
            if(isEditMode){
                //当前行进入编辑状态
                tr.children().each(function(){
                    var td = $(this);
                    if(td.attr('edit') == 'true'){
                        var text = td.text();
                        var temp = "<input type='text' value='" + text + "' />";
                        td.html(temp);
                    }
                })
            }
        }
        
    });
    
}
function CheckReverse(mode,tb){
    //是否进入了编辑模式
    if($(mode).hasClass('editing')){
        //遍历所有tr
        $(tb).children().each(function(){
            var tr = $(this);
            var check_box = tr.children().first().find(':checkbox');
            if(check_box.prop('checked')){
                check_box.prop('checked',false);
                tr.children().each(function(){
                    var td = $(this);
                    if(td.attr('edit') == 'true'){
                        
                        var inp = td.children(':first');//这里获取第一个元素，也就是input标签
                        var input_value = inp.val();
                        td.text(input_value);
                    }
                });
            }else{
                check_box.prop('checked',true);
                tr.children().each(function(){
                    var td = $(this);
                    if(td.attr('edit') == 'true'){
                        var text = td.text();
                        var temp = "<input type='text' value='" + text + "' />"
                        td.html(temp);
                    }
                });
            }
        });


    }else{
        //
        $(tb).children().each(function(){
            var tr = $(this);
            var check_box = tr.children().first().find(':checkbox');
            if(check_box.prop('checked')){
                check_box.prop('checked',false);
            }else{
                check_box.prop('checked',true);
            }
        });
    }    
    
}
function CheckCancel(mode,tb){
    //取消选中checkbox
    //2、如果已经进入编辑模式，行退出编辑状态
    $(tb).children().each(function(){
        var tr = $(this);
        if(tr.find(':checkbox').prop('checked')){
            //移除选中
            tr.find(':checkbox').prop('checked',false);
            //这里的CheckCancel事件已经有传入值，所以这里的$(mode)代表$('#edit-mode'),上面的CheckAll事件的mode也是一样
            var isEditing = $(mode).hasClass('editing');
            if(isEditing == true){
                //当前行，退出编辑状态
                tr.children().each(function(){
                    var td = $(this);
                    if(td.attr('edit') == 'true'){
                        
                        var inp = td.children(':first');//这里获取第一个元素，也就是input标签
                        var input_value = inp.val();
                        td.text(input_value);
                    }
                });
            }
        }
    });
    
}
function EditMode(ths,tb){
    //ths =this
    //hasClass()检查当前的元素是否含有某个特定的类，如果有，则返回true
    var isEditing = $(ths).hasClass('editing');
    if(isEditing){
        //退出编辑模式
        $(ths).text('进入编辑模式');
        $(ths).removeClass('editing');
        $(tb).children().each(function(){
            //$(this)表示循环过程中，每一个tr,第一行数据
            var tr = $(this);
            if(tr.find(':checkbox').prop('checked')){
                //当前行，退出编辑状态
                tr.children().each(function(){
                    var td = $(this);
                    if(td.attr('edit') == 'true'){
                        var inp = td.children(':first');//这里获取第一个元素，也就是input标签
                        var input_value = inp.val();
                        td.text(input_value);
                    }
                });
            }
        });
                
    }else{
        //进入编辑模式 
        $(ths).text('退出编辑模式');
        $(ths).addClass('editing');
        $(tb).children().each(function(){
            //$(this)表示循环过程中，每一个tr,第一行数据
            var tr = $(this);
            var isChecked = $(this).find(':checkbox').prop('checked');
            if(isChecked==true){
                //当前行进入编辑状态
                tr.children().each(function(){
                    var td = $(this);
                    if(td.attr('edit') == 'true'){
                        var text = td.text();
                        var temp = "<input type='text' value='" + text+ "'/>";
                        td.html(temp);
                    }
                })
            }
        
        });
        
    }
}